Error-control coding is a well-developed, interdisciplinary field that spans applied mathematics, computer science, and information theory. Error-control coding techniques are used throughout modern computing, communications, and data-storage systems. In general, error-control coding involves supplementing digitally encoded information with additional, redundant information in order to render the encoded information less susceptible to corruption or loss due to various types of transmission errors, errors that arise as the encoded information is passed through various types of physical and logical interfaces, and errors that arise when the information is stored in, and retrieved from, various types of electronic data-storage media. Other types of coding techniques may employ redundant information for different reasons, or for both error correction and for additional purposes.
Recently, a new generation of electrical-resistance-based memories, various types of which include one-dimensional, two-dimensional, and three-dimensional arrays of nanoscale resistors or memristors, has been developed for a variety of data-storage and computational applications. These newly developed memory arrays have various electronic and physical properties and characteristics that constrain the types of data that can be stored within, and retrieved from, the memories. Researchers and developers of these new types of memories therefore are seeking coding techniques that can accommodate the data constraints associated with electrical-resistance-based memories, and error-control-coding theoreticians and researchers continuously seek new methods and systems that include coding applicable to newly encountered and not-yet encountered applications.